home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 March / PCWorld_2005-03_cd.bin / software / topware / sandra / san2005-1037-w64-sso.exe / {app} / examples / SQL Server Schema.sql < prev    next >
Text File  |  2004-11-06  |  6KB  |  200 lines

  1.  
  2. --
  3. -- SQL Server 7.0/2000/2005 Schema for Sandra Report
  4. --
  5. -- Database is assumed to have been created already.
  6. -- No size settings included, please add as required.
  7. --
  8. -- Copyright (c) 1995-2005, SiSoftware Ltd.
  9. -- All Rights Reserved.
  10. --
  11.  
  12. --USE Sandra;
  13.  
  14. --
  15. -- Kill all tables
  16. --
  17.  
  18. IF exists(select * from sysobjects where id = object_id('TItem') and OBJECTPROPERTY(id, 'IsTable') = 1)
  19. DROP TABLE TItem;
  20.  
  21. IF exists(select * from sysobjects where id = object_id('TControl') and OBJECTPROPERTY(id, 'IsTable') = 1)
  22. DROP TABLE TControl;
  23.  
  24. IF exists(select * from sysobjects where id = object_id('TItemGroup') and OBJECTPROPERTY(id, 'IsTable') = 1)
  25. DROP TABLE TItemGroup;
  26.  
  27. IF exists(select * from sysobjects where id = object_id('TDevice') and OBJECTPROPERTY(id, 'IsTable') = 1)
  28. DROP TABLE TDevice;
  29.  
  30. IF exists(select * from sysobjects where id = object_id('TClass') and OBJECTPROPERTY(id, 'IsTable') = 1)
  31. DROP TABLE TClass;
  32.  
  33. IF exists(select * from sysobjects where id = object_id('TModule') and OBJECTPROPERTY(id, 'IsTable') = 1)
  34. DROP TABLE TModule;
  35.  
  36. IF exists(select * from sysobjects where id = object_id('TReport') and OBJECTPROPERTY(id, 'IsTable') = 1)
  37. DROP TABLE TReport;
  38.  
  39. IF exists(select * from sysobjects where id = object_id('TIDCount') and OBJECTPROPERTY(id, 'IsTable') = 1)
  40. DROP TABLE TIDCount;
  41.  
  42. IF exists(select * from sysobjects where id = object_id('VItemNGroup') and OBJECTPROPERTY(id, 'IsView') = 1)
  43. DROP VIEW VItemNGroup
  44.  
  45. --
  46. -- Create new tables
  47. --
  48.  
  49. CREATE TABLE TReport (
  50.     ID            INT IDENTITY (1,1),
  51.     
  52.     ProgVersion        INT NOT NULL,
  53.     BuildVersion        INT NOT NULL,
  54.     Completed        BIT NOT NULL,
  55.  
  56.     CONSTRAINT        cnstRIID PRIMARY KEY(ID)
  57. );
  58.  
  59. CREATE TABLE TModule (
  60.     ID            INT IDENTITY (1,1),
  61.     ReportID        INT NOT NULL,
  62.     
  63.     Capabilities        INT NOT NULL,
  64.     Col1Percent        FLOAT NOT NULL,
  65.     NotRegOK        BIT NOT NULL,
  66.     Name            VARCHAR(255) NOT NULL,
  67.     TypeID            INT NOT NULL,
  68.     HelpID            INT NOT NULL,
  69.  
  70.     CONSTRAINT        cnstMIID PRIMARY KEY(ID),
  71.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES TReport(ID)
  72. );
  73.  
  74. CREATE TABLE TClass (
  75.     ID            INT IDENTITY (1,1),
  76.     ModuleID        INT NOT NULL,
  77.     
  78.     Name            VARCHAR(255) NOT NULL,
  79.     IconID            INT NOT NULL,
  80.     HelpID            INT NOT NULL,
  81.  
  82.     CONSTRAINT        cnstCIID PRIMARY KEY(ID),
  83.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  84. );
  85.  
  86. CREATE TABLE TDevice (
  87.     ID            INT IDENTITY (1,1),
  88.     ModuleID        INT NOT NULL,
  89.     ClassID            INT,
  90.     
  91.     Name            VARCHAR(255) NOT NULL,
  92.     IconID            INT NOT NULL,
  93.     HelpID            INT NOT NULL,
  94.  
  95.     CONSTRAINT        cnstDIID PRIMARY KEY(ID),
  96.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  97.     CONSTRAINT        cnstDCID FOREIGN KEY(ClassID) REFERENCES TClass(ID)
  98. );
  99.  
  100. CREATE TABLE TItemGroup (
  101.     ID            INT IDENTITY (1,1),
  102.     ModuleID        INT NOT NULL,
  103.     ClassID            INT,
  104.     DeviceID        INT,
  105.     
  106.     Name            VARCHAR(255) NOT NULL,
  107.     IconID            INT NOT NULL,
  108.     HelpID            INT NOT NULL,
  109.  
  110.     CONSTRAINT        cnstGIID PRIMARY KEY(ID),
  111.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  112.     CONSTRAINT        cnstGCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  113.     CONSTRAINT        cnstGDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  114. );
  115.  
  116. CREATE TABLE TItem (
  117.     ID            INT IDENTITY (1,1),
  118.     ModuleID        INT NOT NULL,
  119.     ClassID            INT,
  120.     DeviceID        INT,
  121.     GroupID            INT,
  122.     
  123.     Name            VARCHAR(255) NOT NULL,
  124.     DataValue        VARCHAR(255),
  125.     IconID            INT NOT NULL,
  126.     TypeID            INT NOT NULL,
  127.     HelpID            INT NOT NULL,
  128.  
  129.     CONSTRAINT        cnstIIID PRIMARY KEY(ID),
  130.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  131.     CONSTRAINT        cnstICID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  132.     CONSTRAINT        cnstIDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID),
  133.     CONSTRAINT        cnstIGID FOREIGN KEY(GroupID) REFERENCES TItemGroup(ID)
  134. );
  135.  
  136. CREATE TABLE TControl (
  137.     ID            INT IDENTITY (1,1),
  138.     ModuleID        INT NOT NULL,
  139.     ClassID            INT,
  140.     DeviceID        INT,
  141.     
  142.     Name            INT NOT NULL,
  143.     DataValID        INT NOT NULL,
  144.     DataValue        VARCHAR(255),
  145.  
  146.     CONSTRAINT        cnstTID PRIMARY KEY(ID),
  147.     CONSTRAINT        cnstTMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  148.     CONSTRAINT        cnstTCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  149.     CONSTRAINT        cnstTDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  150. );
  151.  
  152. CREATE TABLE TIDCount (
  153.     TableName        VARCHAR(10) PRIMARY KEY,
  154.     CurrentID        INT NOT NULL
  155. );
  156.  
  157. --
  158. -- Set-up keys/indexes
  159. --
  160.  
  161. CREATE INDEX ndxModuleName ON TModule (Name);
  162.  
  163. CREATE INDEX ndxCtrlName ON TControl (Name);
  164.  
  165. CREATE INDEX ndxGroupName ON TItemGroup (Name);
  166.  
  167. CREATE INDEX ndxItemName ON TItem (Name);
  168. GO
  169.  
  170. --
  171. -- Views
  172. --
  173.  
  174. CREATE VIEW VItemNGroup
  175. AS
  176. SELECT TOP 100 PERCENT
  177. [TItemGroup].[ID] AS TIG_ID, [TItemGroup].[ModuleID] AS TIG_ModuleID,
  178. [TItemGroup].[ClassID] AS TIG_ClassID, [TItemGroup].[DeviceID] AS TIG_DeviceID,
  179. [TItemGroup].[IconID] AS TIG_IconID, [TItemGroup].[HelpID] AS TIG_HelpID,
  180. [TItemGroup].[Name] AS TIG_Name,
  181. [TItem].[ID] AS TI_ID, [TItem].[IconID] AS TI_IconID, [TItem].[HelpID] AS TI_HelpID,
  182. [TItem].[Name] AS TI_Name, [TItem].[TypeID], [TItem].[DataValue]
  183. FROM TItemGroup, TItem
  184. WHERE TItem.GroupID=TItemGroup.ID
  185. ORDER BY TItemGroup.ID, TItem.ID
  186. GO
  187.  
  188. --
  189. -- Inserts
  190. --
  191.  
  192. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  193. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TControl', 1);
  194. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  195. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  196. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  197. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  198. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  199. GO
  200.